﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using vudu.ClasesDominio;
using vudu.Logica.Clases;
using vudu.Datos.SqlServer;

namespace vudu.Pruebas
{
    [TestFixture]
    public class PruebaEnlaceDeDatosRol
    {

        /// <summary>
        /// este metodo prueba si el metodo se consulto exitosamente
        /// </summary>
        /*[Test]
        public void PruebaConsultarRol()
        {
            Rol rol = new Rol();
            SqlServerRol sqlServerRol = new SqlServerRol();
            //instancio el metodo de consultar enla base de datos
            rol = sqlServerRol.ConsultarRol("ucab@univ.vudu.com", "12345");
            Assert.IsNotNull(rol);
            Assert.IsInstanceOf(typeof(Rol), rol);
            Assert.AreEqual(rol.Correo, "ucab@univ.vudu.com");
            Assert.AreEqual(rol.Password, "12345");
        }*/

        /// <summary>
        /// este metodo prueba si el metodo se de consultar el estudiante 
        /// de un rol determinado funciona
        /// </summary>
        /*[Test]
        public void PruebaConsultarRolEstudiante()
        {
            Rol rol = new Rol();
            Estudiante est = new Estudiante();
            SqlServerRol sqlServerRol = new SqlServerRol();
            rol = sqlServerRol.ConsultarRol("pedro@est.vudu.com", "12345");
            est = sqlServerRol.ConsultarUsuarioEstudiante(rol);
            Assert.IsNotNull(est);
            Assert.IsInstanceOf(typeof(Estudiante), est);
            Assert.AreEqual(est.IdEst, 1);
            Assert.AreEqual(est.Expediente, "123");
            Assert.AreEqual(est.Cedula, 19345678);
            Assert.AreEqual(est.Nombre, "Pedro");
            Assert.AreEqual(est.Apellido, "Perez");
        }*/

        /// <summary>
        /// este metodo prueba si el metodo se de consultar el profesor
        /// de un rol determinado funciona
        /// </summary>
        /*[Test]
        public void PruebaConsultarRolProfesor()
        {
            Rol rol = new Rol();
            Profesor prof = new Profesor();
            SqlServerRol sqlServerRol = new SqlServerRol();
            rol = sqlServerRol.ConsultarRol("magurno@prof.vudu.com", "12345");
            prof = sqlServerRol.ConsultarUsuarioProfesor(rol);
            Assert.IsNotNull(prof);
            Assert.IsInstanceOf(typeof(Profesor), prof);
            Assert.AreEqual(prof.Cedula, 14990555);
            Assert.AreEqual(prof.Nombre, "Carlo");
            Assert.AreEqual(prof.Apellido, "Magurno");
            Assert.AreEqual(prof.Sexo, "M");

        }*/

        /// <summary>
        /// este metodo prueba si el metodo se de consultar la escuela
        /// de un rol determinado funciona
        /// </summary>
        /*[Test]
        public void PruebaConsultarRolEscuela()
        {
            Rol rol = new Rol();
            Escuela esc = new Escuela();
            SqlServerRol sqlServerRol = new SqlServerRol();
            rol = sqlServerRol.ConsultarRol("informatica@esc.vudu.com", "12345");
            esc = sqlServerRol.ConsultarUsuarioEscuela(rol);
            Assert.IsNotNull(esc);
            Assert.IsInstanceOf(typeof(Escuela), esc);
            Assert.AreEqual(esc.IdEscuela, 1);
            Assert.AreEqual(esc.NombreEscuela, "Ingeniería Informática");

        }*/

        /// <summary>
        /// este metodo prueba si el metodo se de consultar la universidad
        /// de un rol determinado funciona
        /// </summary>
        /*[Test]
        public void PruebaConsultarRolUniversidad()
        {
            Rol rol = new Rol();
            Universidad univ = new Universidad("", "", "");
            SqlServerRol sqlServerRol = new SqlServerRol();
            rol = sqlServerRol.ConsultarRol("ucab@univ.vudu.com", "12345");
            univ = sqlServerRol.ConsultarUsuarioUniversidad(rol);
            Assert.IsNotNull(univ);
            Assert.IsInstanceOf(typeof(Universidad), univ);
            Assert.AreEqual(univ.IdUniv, 1);
            Assert.AreEqual(univ.Nombre, "Universidad Catolica Andres Bello");

        }*/

        /// <summary>
        /// este metodo prueba si el metodo inserto el objeto rol en base de datos
        /// </summary>
        /*[Test]
        public void PruebaInsertarRolUniversidad()
        {
            //Creo el objeto rol que deseo insertar
            Rol rol = new Rol();
            rol.Correo = "ucab@univ.vudu.com";
            rol.Password = "12345";
            rol.FkUniv = 1;
            //Creo el objeto rolAuxiliar que me retornara la consulta
            Rol rolAux = new Rol();
            SqlServerRol sqlServerRol = new SqlServerRol();
            //instancio el metodo
            bool resp = sqlServerRol.InsertarRolUniversidad(rol);
            rolAux = sqlServerRol.ConsultarRol(rol.Correo, rol.Password);
            Assert.AreEqual(resp, true);
            Assert.IsNotNull(rolAux);
            Assert.AreEqual(rol.Correo, rolAux.Correo);
            Assert.AreEqual(rol.Password, rolAux.Password);

        }*/

        /// <summary>
        /// este metodo prueba si el metodo inserto el objeto rol en base de datos
        /// </summary>
        /*[Test]
        public void PruebaInsertarRolEscuela()
        {
            //Creo el objeto rol que deseo insertar
            Rol rol = new Rol();
            rol.Correo = "informatica@esc.vudu.com";
            rol.Password = "12345";
            rol.FkEsc = 1;
            //Creo el objeto rolAuxiliar que me retornara la consulta
            Rol rolAux = new Rol();
            SqlServerRol sqlServerRol = new SqlServerRol();
            //instancio el metodo
            bool resp = sqlServerRol.InsertarRolEscuela(rol);
            rolAux = sqlServerRol.ConsultarRol(rol.Correo, rol.Password);
            Assert.AreEqual(resp, true);
            Assert.IsNotNull(rolAux);
            Assert.AreEqual(rol.Correo, rolAux.Correo);
            Assert.AreEqual(rol.Password, rolAux.Password);

        }*/

        /// <summary>
        /// este metodo prueba si el metodo inserto el objeto rol en base de datos
        /// </summary>
        /*[Test]
        public void PruebaInsertarRolProfesor()
        {
            //Creo el objeto rol que deseo insertar
            Rol rol = new Rol();
            rol.Correo = "magurno@prof.vudu.com";
            rol.Password = "12345";
            rol.FkProf = 1;
            //Creo el objeto rolAuxiliar que me retornara la consulta
            Rol rolAux = new Rol();
            SqlServerRol sqlServerRol = new SqlServerRol();
            //instancio el metodo
            bool resp = sqlServerRol.InsertarRolProfesor(rol);
            rolAux = sqlServerRol.ConsultarRol(rol.Correo, rol.Password);
            //Assert.IsTrue(resp);
            Assert.IsNotNull(rolAux);
            Assert.AreEqual(rol.Correo, rolAux.Correo);
            Assert.AreEqual(rol.Password, rolAux.Password);

        }*/

        /// <summary>
        /// este metodo prueba si el metodo inserto el objeto rol en base de datos
        /// </summary>
        /*[Test]
        public void PruebaInsertarRolEstudiante()
        {
            //Creo el objeto rol que deseo insertar
            Rol rol = new Rol();
            rol.Correo = "pedro@est.vudu.com";
            rol.Password = "12345";
            rol.FkEst = 1;
            //Creo el objeto rolAuxiliar que me retornara la consulta
            Rol rolAux = new Rol();
            SqlServerRol sqlServerRol = new SqlServerRol();
            //instancio el metodo
            bool resp = sqlServerRol.InsertarRolEstudiante(rol);
            rolAux = sqlServerRol.ConsultarRol(rol.Correo, rol.Password);
            Assert.IsTrue(resp);
            Assert.IsNotNull(rolAux);
            Assert.AreEqual(rol.Correo, rolAux.Correo);
            Assert.AreEqual(rol.Password, rolAux.Password);

        }*/

        [Test]
        public void PruebaConsultarEstudianteRol()
        {
            SqlServerRol sqlServerRol = new SqlServerRol();
            bool resp1 = false;
            bool resp2 = false;
            resp1 = sqlServerRol.ConsultarEstudianteRol(12345999);
            resp2 = sqlServerRol.ConsultarEstudianteRol(19345678);
            Assert.IsFalse(resp1);
            Assert.IsTrue(resp2);
        }

        [Test]
        public void PruebaConsultarProfesorRol()
        {
            SqlServerRol sqlServerRol = new SqlServerRol();
            bool resp1 = false;
            bool resp2 = false;
            resp1 = sqlServerRol.ConsultarProfesorRol(12345999);
            resp2 = sqlServerRol.ConsultarProfesorRol(14990555);
            Assert.IsFalse(resp1);
            Assert.IsTrue(resp2);
        }

        [Test]
        public void PruebaValidarCorreo()
        {
            SqlServerRol sqlServerRol = new SqlServerRol();
            bool resp1 = false;
            bool resp2 = false;
            resp1 = sqlServerRol.ValidarCorreo("ucab@univ.vudu.com");
            resp2 = sqlServerRol.ValidarCorreo("usuario.xyz@univ.vudu.com");
            Assert.IsTrue(resp1);
            Assert.IsFalse(resp2);
        }

        [Test]
        public void PruebaConsultarEscuelasBD()
        {
            SqlServerRol sqlServerRol = new SqlServerRol();
            List<Escuela> escs = sqlServerRol.ConsultarEscuelasBD(1);
            Assert.IsNotNull(escs);
            Assert.IsInstanceOf(typeof(List<Escuela>), escs);
            Assert.IsNotEmpty(escs);

        }

        [Test]
        public void PruebaConsultarUnProfesor()
        {
            SqlServerRol sqlServerRol = new SqlServerRol();
            bool aux1 = sqlServerRol.ConsultarUnProfesor("V",14990555);
            bool aux2 = sqlServerRol.ConsultarUnProfesor("V",00000000);
            Assert.IsTrue(aux1);
            Assert.IsFalse(aux2);
        }

    }
}